package onlineLanguageQuiz

import org.springframework.cloud.contract.spec.Contract

Contract.make {
    request {
        method("GET")
        url(value(producer("/api/v3/onlineLanguageQuizzes/1")
                , consumer(regex("/api/v3/onlineLanguageQuizzes/\\d+")))) {
            queryParameters {
                parameter("status", "")
            }
        }
    }
    response {
        // usercenter
        status(200)
        body("""
        
            {
                "id":1,
                "description":"description",
                "testData":"testData",
                "initCode":"initCode",
                "makerId":1,
                "onlineLanguageName":"onlineLanguageName",
                "language":"java",
                "answer":"answer",
                "stackId":1,
                "rawId":1,
                "answerDescription":"answerDescription",
                "available":true,
                "status":2,
                "remark":"remark"
            }
        
        """)
        bodyMatchers {
            jsonPath('$', byType())
            jsonPath('$.id', byRegex(number()))
            jsonPath('$.description', byRegex("[\\S\\s]+"))
            jsonPath('$.testData', byRegex("[\\S\\s]+"))
            jsonPath('$.initCode', byRegex("[\\S\\s]+"))
            jsonPath('$.makerId', byRegex(number()))
            jsonPath('$.onlineLanguageName', byRegex("[\\S\\s]+"))
            jsonPath('$.language', byRegex("[\\S\\s]+"))
            jsonPath('$.answer', byRegex("[\\S\\s]+"))
            jsonPath('$.stackId', byRegex(number()))
            jsonPath('$.rawId', byRegex(number()))
            jsonPath('$.answerDescription', byRegex("[\\S\\s]+"))
            jsonPath('$.available', byRegex("[\\S\\s]+"))
            jsonPath('$.status', byRegex(number()))
            jsonPath('$.remark', byRegex("[\\S\\s]+"))
        }
        headers {
            contentType(applicationJsonUtf8())
        }

    }
}
